/*
**	$VER: cybergraphics.h 41.18 (21.02.1998)
**
**	include file for cybergraphics.library
**
**	Copyright © 1996-1998 by phase5 digital products
**      All Rights reserved.
**
*/
MODULE	'utility/tagitem'
MODULE	'graphics/displayinfo'

#define	CYBERGFXNAME	'cybergraphics.library'
CONST		CYBERGFX_INCLUDE_VERSION=41

/*                                                          *
 *  Definition of CyberModeNode (Returned in AllocModeList) *
 *                                                          */
OBJECT CyberModeNode
	Node:Node,
	ModeText[DISPLAYNAMELEN]:UBYTE,    /* name for this mode */
	DisplayID:ULONG,                   /* display id associated with the node */
	Width:UWORD,                       /* visible width */
	Height:UWORD,                      /* visible height */
	Depth:UWORD,                       /* display depth */
	DisplayTagList:PTR TO TagItem      /* taglist with extended ModeID information */

/*                                  *
 * Parameters for GetCyberMapAttr() *
 *                                  */
CONST	CYBRMATTR_XMod       =$80000001,	/* function returns BytesPerRow if its called with this parameter */
		CYBRMATTR_BPPix      =$80000002,	/* BytesPerPixel shall be returned */
		CYBRMATTR_DispAdr    =$80000003,	/* do not use this ! private tag */
		CYBRMATTR_PixFmt     =$80000004,	/* the pixel format is returned */
		CYBRMATTR_Width      =$80000005,	/* returns width in pixels */
		CYBRMATTR_Height     =$80000006,	/* returns height in lines */
		CYBRMATTR_Depth      =$80000007,	/* returns bits per pixel */
		CYBRMATTR_IsCyberGfx =$80000008,	/* returns -1 if supplied bitmap is a cybergfx one */
		CYBRMATTR_IsLinearMem=$80000009	/* returns -1 if supplied bitmap is linear accessable */

/*                                 *
 * Parameters for GetCyberIDAttr() *
 *                                 */
CONST	CYBRIDATTR_PixFmt    =$80000001,	/* the pixel format is returned */
		CYBRIDATTR_Width     =$80000002,	/* returns visible width in pixels */
		CYBRIDATTR_Height    =$80000003,	/* returns visible height in lines */
		CYBRIDATTR_Depth     =$80000004,	/* returns bits per pixel */
		CYBRIDATTR_BPPix     =$80000005	/* BytesPerPixel shall be returned */

/*                              *
 * Tags for CyberModeRequest()  *
 *                              */
CONST	CYBRMREQ_TB          =TAG_USER+$40000

/*            *
 * FilterTags *
 *            */
CONST	CYBRMREQ_MinDepth    =CYBRMREQ_TB+0,	/* Minimum depth for displayed screenmode */
		CYBRMREQ_MaxDepth    =CYBRMREQ_TB+1,	/* Maximum depth  "       "        " */
		CYBRMREQ_MinWidth    =CYBRMREQ_TB+2,	/* Minumum width  "       "        " */
		CYBRMREQ_MaxWidth    =CYBRMREQ_TB+3,	/* Maximum width  "       "        " */
		CYBRMREQ_MinHeight   =CYBRMREQ_TB+4,	/* Minumum height "       "        " */
		CYBRMREQ_MaxHeight   =CYBRMREQ_TB+5,	/* Minumum height "       "        " */
		CYBRMREQ_CModelArray =CYBRMREQ_TB+6,
		CYBRMREQ_WinTitle    =CYBRMREQ_TB+20,
		CYBRMREQ_OKText      =CYBRMREQ_TB+21,
		CYBRMREQ_CancelText  =CYBRMREQ_TB+22,
		CYBRMREQ_Screen      =CYBRMREQ_TB+30	/* Screen you wish the Requester to open on */

/*                            *
 * Tags for BestCyberModeID() *
 *                            */
CONST	CYBRBIDTG_TB         =TAG_USER+$50000

/* FilterTags */
CONST	CYBRBIDTG_Depth        =CYBRBIDTG_TB+0,
		CYBRBIDTG_NominalWidth =CYBRBIDTG_TB+1,
		CYBRBIDTG_NominalHeight=CYBRBIDTG_TB+2,
		CYBRBIDTG_MonitorID    =CYBRBIDTG_TB+3,
		CYBRBIDTG_BoardName    =CYBRBIDTG_TB+5

/*                                    *
 * definition of divers pixel formats *
 *                                    */
ENUM	PIXFMT_LUT8,
		PIXFMT_RGB15,
		PIXFMT_BGR15,
		PIXFMT_RGB15PC,
		PIXFMT_BGR15PC,
		PIXFMT_RGB16,
		PIXFMT_BGR16,
		PIXFMT_RGB16PC,
		PIXFMT_BGR16PC,
		PIXFMT_RGB24,
		PIXFMT_BGR24,
		PIXFMT_ARGB32,
		PIXFMT_BGRA32,
		PIXFMT_RGBA32

/*                                                        *
 * SrcRectangle formats defines for xxxPixelArray calls() * 
 *                                                        */
ENUM	RECTFMT_RGB,
		RECTFMT_RGBA,
		RECTFMT_ARGB,
		RECTFMT_LUT8,
		RECTFMT_GREY8

/*                                    *
 * Parameters for CVideoCtrlTagList() *
 *                                    */
CONST	SETVC_DPMSLevel   =$88002001
ENUM	DPMS_ON,     	/* Full operation                             */
		DPMS_STANDBY,	/* Optional state of minimal power reduction  */
		DPMS_SUSPEND,	/* Significant reduction of power consumption */
		DPMS_OFF     	/* Lowest level of power consumption          */

/*                              *
 * Tags for LockBitMapTagList() *
 *                              */
CONST	LBMI_Width       =$84001001,
		LBMI_Height      =$84001002,
		LBMI_Depth       =$84001003,
		LBMI_PixFmt      =$84001004,
		LBMI_BytesPerPix =$84001005,
		LBMI_BytesPerRow =$84001006,
		LBMI_BaseAddress =$84001007

/*                                *
 * Tags for UnLockBitMapTagList() *
 *                                */
CONST	UBMI_UpdateRects =$85001001,
		UBMI_ReallyUnlock=$85001002

/*								*
 * Message passed to the DoCDrawMethodTagList() hook function	*
 *								*/
OBJECT CDrawMsg
	MemPtr:PTR,
	offx:ULONG,
	offy:ULONG,
	xsize:ULONG,
	ysize:ULONG,
	BytesPerRow:UWORD,
	BytesPerPix:UWORD,
	ColorModel:UWORD

/*							*
 * Colour Table source formats for WriteLUTPixelArray()	*
 *							*/
ENUM	CTABFMT_XRGB8	/* ULONG [] table */

/*							*
 *	graphics.library/AllocBitMap() extended flags	*
 *							*/
FLAG	BM_SPECIALFMT=7

/* BMB_SPECIALFMT */
#define SHIFT_PIXFMT(fmt) ((fmt)<<24)
